Communications networks now require the handling of data at very high data rates. For example, 10 gigabits per second (Gbps) is common. When it is required to process data at these speeds, multiple high-speed parallel connections may be used to increase the effective bandwidth. However, this may result in one or more transmission problems, since the data streams must be divided to be distributed over the multiple parallel connections, and at some point after parallel transmission, recombined to form the original streams.
FIG. 1 shows a block diagram 100 of a typical network structure for transmitting data frames (or data packets) from source processors 102 to a destination processor 104 via network fabrics 106. The data streams include frames that may comprise a fixed amount of data. For example, stream A may include frames A0, A1, and A2 that are received by the source processor A and transmitted to each of the fabrics as shown. The stream B may include frames B0, B1 and B2 that are transmitted to the fabrics by source processor B as shown, and the stream C may include frames C0, C1 and C2 that are transmitted to the fabrics by source processor C as shown.
Once the frames are received by the fabrics, they are transmitted to the destination processor 104. The destination processor receives the frames in the order they arrive and combines them for transmission to another network entity, as shown by stream D.
A significant problem that exists with current transmission systems, such as the system shown in FIG. 1, is that the frames may end up in the wrong order when transmitted from the destination processor D. For example, the frames may be output in the order shown at 108. In this case, frame B2 is output before frame B1, and frame C2 is output before frame C1. Thus, the frames received from source processors B and C are transmitted from the destination processor 104 out of order. In such a case, it may be necessary to discard the out of order frames of data and request a new transmission of those frames. As a result, additional overhead will be used and a corresponding loss of transmission bandwidth will be realized.
Additional problems can occur in systems where the transmitted data frames have been segmented before transmission. In these systems, it is possible that both the frames and/or individual segments of each frame are transmitted out of order. Thus, even if the frames maintain the correct order with respect to a transmitting source processor, segments within the frames may be out of order.
Therefore, it would be desirable to have a way to reorder frames of data in a transmission system so that the frames are output in the correct order, thereby improving transmission efficiency. Furthermore, it would also be desirable to have a way to reorder frame segments so that both the frames and their corresponding segments are output in the correct order.